/*
 * eniac-lib.h
 *
 *  Created on: 4-apr-2009
 *      Author: fabrizio
 */

#ifndef ENIACLIB_H_
#define ENIACLIB_H_

#include "eniac.h"
#include "scenemngr.h"

class EniacLib
{
public:
  EniacLib(SceneMngr *smgr);

  parser Parser;
  SceneMngr *Smgr;

  //SceneMGR
	Data eniacSMGR_AddPatch(const Data & args, eniacVm& vm);
	Data eniacSMGR_AddSound(const Data & args, eniacVm& vm);
	Data eniacSMGR_AddSensor(const Data & args, eniacVm& vm);
  Data eniacSMGR_Schedule(const Data & args, eniacVm& vm); //function,time,repeat
  //Subtitle
  Data eniacSUBTITLE_Print(const Data & args, eniacVm& vm);
  Data eniacSUBTITLE_Format(const Data & args, eniacVm& vm);
  //Node
  Data eniacNODE_GetId(const Data & args, eniacVm& vm);
  Data eniacNODE_GoTo(const Data & args, eniacVm& vm);
  Data eniacNODE_Overlay(const Data & args, eniacVm& vm);
  Data eniacNODE_CloseOverlay(const Data & args, eniacVm& vm);
  //Camera
  Data eniacCAMERA_GetMode(const Data & args, eniacVm& vm);
  Data eniacCAMERA_SetMode(const Data & args, eniacVm& vm);
  Data eniacCAMERA_GetFOV(const Data & args, eniacVm& vm);
  Data eniacCAMERA_SetFOV(const Data & args, eniacVm& vm);
  Data eniacCAMERA_GetViewDirection(const Data & args, eniacVm& vm);
  Data eniacCAMERA_SetViewDirection(const Data & args, eniacVm& vm);
  //Cursor
  Data eniacCURSOR_SetIcon(const Data & args, eniacVm& vm);
  Data eniacCURSOR_GetIcon(const Data & args, eniacVm& vm);
  Data eniacCURSOR_LoadIcon(const Data & args, eniacVm& vm);
  //Patch
  Data eniacPATCH_setImage(const Data & args, eniacVm& vm); //nodeId,patchId,image
  Data eniacPATCH_setColor(const Data & args, eniacVm& vm);
  Data eniacPATCH_move(const Data & args, eniacVm& vm);
  Data eniacPATCH_rotate(const Data & args, eniacVm& vm);
  Data eniacPATCH_setVisible(const Data & args, eniacVm& vm);
  Data eniacPATCH_isVisible(const Data & args, eniacVm& vm);
  //Sound
  Data eniacSOUND_play(const Data & args, eniacVm& vm); //nodeId,soundId,void
  Data eniacSOUND_stop(const Data & args, eniacVm& vm);
  Data eniacSOUND_isPlaying(const Data & args, eniacVm& vm);
  Data eniacSOUND_setPosition(const Data & args, eniacVm& vm);
  Data eniacSOUND_setRepeat(const Data & args, eniacVm& vm);
  Data eniacSOUND_setVolume(const Data & args, eniacVm& vm);
  Data eniacSOUND_setPan(const Data & args, eniacVm& vm);
  Data eniacSOUND_setPitch(const Data & args, eniacVm& vm);
  //Sensor
  Data eniacSENSOR_isEnable(const Data & args, eniacVm& vm);
  Data eniacSENSOR_setEneble(const Data & args, eniacVm& vm);
  Data eniacSENSOR_move(const Data & args, eniacVm& vm);

  virtual
  ~EniacLib();
};

#endif /* ENIACLIB_H_ */
